Computers traditionally developed around a single central processing unit. As more differ ways of getting information to and from the central processing unit were developed, they were attached to the central processing unit, but the central processing unit remained essentially unchanged.
FIG. 1 is a block diagram illustrating an example of a prior art computer architecture. Traditional data processing systems comprise a general-purpose processor coupled to a variety of application-specific subsystems. Processor 101 is coupled to an application-specific communications subsystem 102, to an application-specific audio subsystem 103, and to an application-specific video subsystem 104.
Such prior art computer architectures suffer from inflexibility in the allocation of resources. For example, when performing processing that does not involve processing of audio data, audio subsystem 103 remains unused. It cannot be used for other purposes since it is permanently configured specifically for processing audio data. Thus, the overall processing capability of the computer architecture is limited by the processing capability of processor 101.
Attempts in the prior art to avoid the inefficiency of the separate application-specific communications subsystem 102, application-specific audio subsystem 103, and application-specific video subsystem 104 have used a single combined subsystem to perform the functions of subsystems 102, 103, and 104. However, such single combined subsystems still suffer from inflexibility with respect to allocation of resources between the single combined subsystem and processor 101.
Likewise, the processing capability of processor 101 is also limited. For example, a typical modern microprocessor, such as a Pentium III, often executes 200-300 cycle instructions that cannot be interrupted. Also, a typical operating system for such a microprocessor, such as Microsoft Windows, can have high and unpredictable latency with limitations, such as floppy disk accesses that cannot be interrupted.
Therefore, a method and apparatus is needed to provide increased flexibility and efficiency in the allocation of resources in a computer system.